/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package com.clbs.ex.springgwt.client.model;

import com.google.gwt.user.client.rpc.IsSerializable;

/**
 *
 * @author peerawat.poombua
 */
public class Issue implements IsSerializable {

    private int issueID;
    private String name;
    private String description;
    private String link;
    private int issue_statusID;
    private IssueStatus issueStatus;

    public Issue(){};

    /**
     * @return the issueID
     */
    public int getIssueID() {
        return issueID;
    }

    /**
     * @param issueID the issueID to set
     */
    public void setIssueID(int issueID) {
        this.issueID = issueID;
    }

    /**
     * @return the name
     */
    public String getName() {
        return name;
    }

    /**
     * @param name the name to set
     */
    public void setName(String name) {
        this.name = name;
    }

    /**
     * @return the description
     */
    public String getDescription() {
        return description;
    }

    /**
     * @param description the description to set
     */
    public void setDescription(String description) {
        this.description = description;
    }

    /**
     * @return the issue_statusID
     */
    public int getIssue_statusID() {
        return issue_statusID;
    }

    /**
     * @param issue_statusID the issue_statusID to set
     */
    public void setIssue_statusID(int issue_statusID) {
        this.issue_statusID = issue_statusID;
    }

    /**
     * @return the link
     */
    public String getLink() {
        return link;
    }

    /**
     * @param link the link to set
     */
    public void setLink(String link) {
        this.link = link;
    }

    /**
     * @return the issueStatus
     */
    public IssueStatus getIssueStatus() {
        return issueStatus;
    }

    /**
     * @param issueStatus the issueStatus to set
     */
    public void setIssueStatus(IssueStatus issueStatus) {
        this.issueStatus = issueStatus;
    }

    @Override
    public boolean equals(Object obj) {
        if (obj == null) {
            return false;
        }
        if (getClass() != obj.getClass()) {
            return false;
        }
        final Issue other = (Issue) obj;
        if (this.issueID != other.issueID) {
            return false;
        }
        if ((this.name == null) ? (other.name != null) : !this.name.equals(other.name)) {
            return false;
        }
        if ((this.description == null) ? (other.description != null) : !this.description.equals(other.description)) {
            return false;
        }
        if ((this.link == null) ? (other.link != null) : !this.link.equals(other.link)) {
            return false;
        }
        if (this.issue_statusID != other.issue_statusID) {
            return false;
        }
        if (this.issueStatus != other.issueStatus && (this.issueStatus == null || !this.issueStatus.equals(other.issueStatus))) {
            return false;
        }
        return true;
    }

    @Override
    public int hashCode() {
        int hash = 3;
        hash = 37 * hash + this.issueID;
        hash = 37 * hash + (this.name != null ? this.name.hashCode() : 0);
        hash = 37 * hash + (this.description != null ? this.description.hashCode() : 0);
        hash = 37 * hash + (this.link != null ? this.link.hashCode() : 0);
        hash = 37 * hash + this.issue_statusID;
        hash = 37 * hash + (this.issueStatus != null ? this.issueStatus.hashCode() : 0);
        return hash;
    }


}
